
/*
Description:
Given a column title as appear in an Excel sheet, return its corresponding column number.

For example:

A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...

Example 1:
Input: "A"
Output: 1

Example 2:
Input: "AB"
Output: 28

Example 3:
Input: "ZY"
Output: 701

*/

#include <iostream>
#include <string>
#include <vector>
using namespace std;

class Solution {
public:
	int titleToNumber(string s)
	{
		int result = 0;
		for (int i = 0; i < s.size(); i++)
			result = result * 26 + (s.at(i) - 'A' + 1);

		return result;
	}
	int titleToNumber0(string s) {
		int num = 0;
		char c;
		int base = 1;
		while (!s.empty())
		{
			c = s.back();
			num += (c - 'A' + 1) * base;
			base *= 26;
			s.pop_back();
		}
		return num;
	}
};

int _titleToNumber()
{
	string s = "AB";
	Solution solu;
	int num;

	num = solu.titleToNumber(s);

	cout << "column: " << s << endl;
	cout << "number: " << num << endl;
	return 0;
}